var runtime.sched
457 uses
runtime (current package)
cgocall.go#L433: hz := sched.profilehz
debug.go#L75: lock(&sched.lock)
debug.go#L78: unlock(&sched.lock)
debug.go#L83: sched.customGOMAXPROCS = true
debug.go#L84: unlock(&sched.lock)
debug.go#L124: lock(&sched.lock)
debug.go#L126: custom := sched.customGOMAXPROCS
debug.go#L127: unlock(&sched.lock)
debug.go#L142: lock(&sched.lock)
debug.go#L143: sched.customGOMAXPROCS = false
debug.go#L144: unlock(&sched.lock)
debug.go#L168: total := sched.totalMutexWaitTime.Load()
debug.go#L170: total += sched.totalRuntimeLockWaitTime.Load()
debugcall.go#L248: lock(&sched.lock)
debugcall.go#L250: unlock(&sched.lock)
lock_spinbit.go#L138: case &sched.lock:
mcheckmark.go#L134: sched.gcwaiting.Store(false)
mcheckmark.go#L143: sched.gcwaiting.Store(true)
metrics.go#L351: sched.stwTotalTimeGC.write(out)
metrics.go#L512: sched.timeToRun.write(out)
metrics.go#L517: sched.stwStoppingTimeGC.write(out)
metrics.go#L522: sched.stwStoppingTimeOther.write(out)
metrics.go#L527: sched.stwTotalTimeGC.write(out)
metrics.go#L532: sched.stwTotalTimeOther.write(out)
metrics.go#L806: lock(&sched.lock)
metrics.go#L813: a.gCreated += sched.goroutinesCreated.Load()
metrics.go#L851: a.gRunnable += uint64(sched.runq.size)
metrics.go#L854: nGsyscallNoP := sched.nGsyscallNoP.Load()
metrics.go#L870: unlock(&sched.lock)
mgc.go#L1449: sched.idleTime.Store(0)
mgc.go#L1870: lock(&sched.lock)
mgc.go#L1872: unlock(&sched.lock)
mgc.go#L2174: lock(&sched.sudoglock)
mgc.go#L2176: for sg = sched.sudogcache; sg != nil; sg = sgnext {
mgc.go#L2180: sched.sudogcache = nil
mgc.go#L2181: unlock(&sched.sudoglock)
mgc.go#L2185: lock(&sched.deferlock)
mgc.go#L2189: for d = sched.deferpool; d != nil; d = dlink {
mgc.go#L2193: sched.deferpool = nil
mgc.go#L2194: unlock(&sched.deferlock)
mgclimit.go#L213: sched.idleTime.Add(duration)
mgclimit.go#L472: sched.idleTime.Add(duration)
mgcmark.go#L361: lock(&sched.gFree.lock)
mgcmark.go#L362: list := sched.gFree.stack
mgcmark.go#L363: sched.gFree.stack = gList{}
mgcmark.go#L364: unlock(&sched.gFree.lock)
mgcmark.go#L385: lock(&sched.gFree.lock)
mgcmark.go#L386: sched.gFree.noStack.pushAll(q)
mgcmark.go#L387: unlock(&sched.gFree.lock)
mgcmark.go#L1270: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcmark.go#L1300: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcpacer.go#L716: if sched.npidle.Load() != 0 && sched.nmspinning.Load() == 0 {
mstats.go#L463: lock(&sched.sysmonlock)
mstats.go#L503: unlock(&sched.sysmonlock)
mstats.go#L973: s.TotalTime = sched.totaltime + (now-sched.procresizetime)*int64(gomaxprocs)
mstats.go#L974: s.IdleTime += sched.idleTime.Load()
panic.go#L582: if len(pp.deferpool) == 0 && sched.deferpool != nil {
panic.go#L583: lock(&sched.deferlock)
panic.go#L584: for len(pp.deferpool) < cap(pp.deferpool)/2 && sched.deferpool != nil {
panic.go#L585: d := sched.deferpool
panic.go#L586: sched.deferpool = d.link
panic.go#L590: unlock(&sched.deferlock)
panic.go#L641: lock(&sched.deferlock)
panic.go#L642: last.link = sched.deferpool
panic.go#L643: sched.deferpool = first
panic.go#L644: unlock(&sched.deferlock)
proc.go#L411: if !gp.preempt && sched.npidle.Load() > 0 {
proc.go#L500: lock(&sched.sudoglock)
proc.go#L502: for len(pp.sudogcache) < cap(pp.sudogcache)/2 && sched.sudogcache != nil {
proc.go#L503: s := sched.sudogcache
proc.go#L504: sched.sudogcache = s.next
proc.go#L508: unlock(&sched.sudoglock)
proc.go#L566: lock(&sched.sudoglock)
proc.go#L567: last.next = sched.sudogcache
proc.go#L568: sched.sudogcache = first
proc.go#L569: unlock(&sched.sudoglock)
proc.go#L832: lockInit(&sched.lock, lockRankSched)
proc.go#L833: lockInit(&sched.sysmonlock, lockRankSysmon)
proc.go#L834: lockInit(&sched.deferlock, lockRankDefer)
proc.go#L835: lockInit(&sched.sudoglock, lockRankSudog)
proc.go#L854: sched.midle.init(unsafe.Offsetof(m{}.idleNode))
proc.go#L863: sched.maxmcount = 10000
proc.go#L919: lock(&sched.lock)
proc.go#L920: sched.lastpoll.Store(nanotime())
proc.go#L924: sched.customGOMAXPROCS = true
proc.go#L939: unlock(&sched.lock)
proc.go#L964: assertLockHeld(&sched.lock)
proc.go#L975: if count > sched.maxmcount {
proc.go#L976: print("runtime: program exceeds ", sched.maxmcount, "-thread limit\n")
proc.go#L986: assertLockHeld(&sched.lock)
proc.go#L988: if sched.mnext+1 < sched.mnext {
proc.go#L991: id := sched.mnext
proc.go#L992: sched.mnext++
proc.go#L1006: lock(&sched.lock)
proc.go#L1030: unlock(&sched.lock)
proc.go#L1075: sched.nmspinning.Add(1)
proc.go#L1076: sched.needspinning.Store(0)
proc.go#L1189: sched.stopwait = freezeStopWait
proc.go#L1190: sched.gcwaiting.Store(true)
proc.go#L1358: sched.totalMutexWaitTime.Add((now - gp.trackingStamp) * gTrackingPeriod)
proc.go#L1380: sched.timeToRun.record(gp.runnableTime)
proc.go#L1656: lock(&sched.lock)
proc.go#L1658: sched.stopwait = gomaxprocs
proc.go#L1659: sched.gcwaiting.Store(true)
proc.go#L1665: sched.stopwait--
proc.go#L1684: sched.stopwait--
proc.go#L1686: wait := sched.stopwait > 0
proc.go#L1687: unlock(&sched.lock)
proc.go#L1693: if notetsleep(&sched.stopnote, 100*1000) {
proc.go#L1694: noteclear(&sched.stopnote)
proc.go#L1704: sched.stwStoppingTimeGC.record(startTime)
proc.go#L1706: sched.stwStoppingTimeOther.record(startTime)
proc.go#L1715: if sched.stopwait != 0 {
proc.go#L1769: lock(&sched.lock)
proc.go#L1777: sched.gcwaiting.Store(false)
proc.go#L1778: if sched.sysmonwait.Load() {
proc.go#L1779: sched.sysmonwait.Store(false)
proc.go#L1780: notewakeup(&sched.sysmonnote)
proc.go#L1782: unlock(&sched.lock)
proc.go#L1809: sched.stwTotalTimeGC.record(totalTime)
proc.go#L1811: sched.stwTotalTimeOther.record(totalTime)
proc.go#L1997: lock(&sched.lock)
proc.go#L1998: sched.nmfreed++
proc.go#L2000: unlock(&sched.lock)
proc.go#L2030: lock(&sched.lock)
proc.go#L2054: mp.freelink = sched.freem
proc.go#L2055: sched.freem = mp
proc.go#L2056: unlock(&sched.lock)
proc.go#L2059: sched.totalRuntimeLockWaitTime.Add(mp.mLockProfile.waitTime.Load())
proc.go#L2068: lock(&sched.lock)
proc.go#L2069: sched.nmfreed++
proc.go#L2071: unlock(&sched.lock)
proc.go#L2144: lock(&sched.lock)
proc.go#L2145: if sched.safePointWait != 0 {
proc.go#L2148: sched.safePointWait = gomaxprocs - 1
proc.go#L2149: sched.safePointFn = fn
proc.go#L2165: for p := sched.pidle.ptr(); p != nil; p = p.link.ptr() {
proc.go#L2168: sched.safePointWait--
proc.go#L2172: wait := sched.safePointWait > 0
proc.go#L2173: unlock(&sched.lock)
proc.go#L2199: if notetsleep(&sched.safePointNote, 100*1000) {
proc.go#L2200: noteclear(&sched.safePointNote)
proc.go#L2206: if sched.safePointWait != 0 {
proc.go#L2215: lock(&sched.lock)
proc.go#L2216: sched.safePointFn = nil
proc.go#L2217: unlock(&sched.lock)
proc.go#L2240: sched.safePointFn(p)
proc.go#L2241: lock(&sched.lock)
proc.go#L2242: sched.safePointWait--
proc.go#L2243: if sched.safePointWait == 0 {
proc.go#L2244: notewakeup(&sched.safePointNote)
proc.go#L2246: unlock(&sched.lock)
proc.go#L2284: if sched.freem != nil {
proc.go#L2285: lock(&sched.lock)
proc.go#L2287: for freem := sched.freem; freem != nil; {
proc.go#L2320: sched.freem = newList
proc.go#L2321: unlock(&sched.lock)
proc.go#L2457: sched.ngsys.Add(-1)
proc.go#L2533: gp.goid = sched.goidgen.Add(1)
proc.go#L2544: sched.ngsys.Add(1)
proc.go#L2601: sched.ngsys.Add(1)
proc.go#L2641: lock(&sched.lock)
proc.go#L2643: unlock(&sched.lock)
proc.go#L2964: lock(&sched.lock)
proc.go#L2965: sched.nmsys++
proc.go#L2967: unlock(&sched.lock)
proc.go#L3005: lock(&sched.lock)
proc.go#L3007: unlock(&sched.lock)
proc.go#L3054: lock(&sched.lock)
proc.go#L3066: unlock(&sched.lock)
proc.go#L3089: unlock(&sched.lock)
proc.go#L3099: lock(&sched.lock)
proc.go#L3107: unlock(&sched.lock)
proc.go#L3136: if !runqempty(pp) || !sched.runq.empty() {
proc.go#L3152: if sched.nmspinning.Load()+sched.npidle.Load() == 0 && sched.nmspinning.CompareAndSwap(0, 1) { // TODO: fast atomic
proc.go#L3153: sched.needspinning.Store(0)
proc.go#L3157: lock(&sched.lock)
proc.go#L3158: if sched.gcwaiting.Load() {
proc.go#L3161: sched.stopwait--
proc.go#L3162: if sched.stopwait == 0 {
proc.go#L3163: notewakeup(&sched.stopnote)
proc.go#L3165: unlock(&sched.lock)
proc.go#L3169: sched.safePointFn(pp)
proc.go#L3170: sched.safePointWait--
proc.go#L3171: if sched.safePointWait == 0 {
proc.go#L3172: notewakeup(&sched.safePointNote)
proc.go#L3175: if !sched.runq.empty() {
proc.go#L3176: unlock(&sched.lock)
proc.go#L3182: if sched.npidle.Load() == gomaxprocs-1 && sched.lastpoll.Load() != 0 {
proc.go#L3183: unlock(&sched.lock)
proc.go#L3192: unlock(&sched.lock)
proc.go#L3215: if sched.nmspinning.Load() != 0 || !sched.nmspinning.CompareAndSwap(0, 1) {
proc.go#L3227: lock(&sched.lock)
proc.go#L3230: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3233: unlock(&sched.lock)
proc.go#L3241: unlock(&sched.lock)
proc.go#L3299: if !sched.gcwaiting.Load() {
proc.go#L3306: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3311: lock(&sched.lock)
proc.go#L3314: sched.stopwait--
proc.go#L3315: if sched.stopwait == 0 {
proc.go#L3316: notewakeup(&sched.stopnote)
proc.go#L3318: unlock(&sched.lock)
proc.go#L3371: hz := sched.profilehz
proc.go#L3403: if sched.gcwaiting.Load() {
proc.go#L3443: if pp.schedtick%61 == 0 && !sched.runq.empty() {
proc.go#L3444: lock(&sched.lock)
proc.go#L3446: unlock(&sched.lock)
proc.go#L3474: if !sched.runq.empty() {
proc.go#L3475: lock(&sched.lock)
proc.go#L3477: unlock(&sched.lock)
proc.go#L3495: if netpollinited() && netpollAnyWaiters() && sched.lastpoll.Load() != 0 && sched.pollingNet.Swap(1) == 0 {
proc.go#L3497: sched.pollingNet.Store(0)
proc.go#L3517: if mp.spinning || 2*sched.nmspinning.Load() < gomaxprocs-sched.npidle.Load() {
proc.go#L3594: lock(&sched.lock)
proc.go#L3595: if sched.gcwaiting.Load() || pp.runSafePointFn != 0 {
proc.go#L3596: unlock(&sched.lock)
proc.go#L3599: if !sched.runq.empty() {
proc.go#L3601: unlock(&sched.lock)
proc.go#L3610: if !mp.spinning && sched.needspinning.Load() == 1 {
proc.go#L3613: unlock(&sched.lock)
proc.go#L3620: unlock(&sched.lock)
proc.go#L3661: if sched.nmspinning.Add(-1) < 0 {
proc.go#L3676: lock(&sched.lock)
proc.go#L3677: if !sched.runq.empty() {
proc.go#L3681: unlock(&sched.lock)
proc.go#L3693: unlock(&sched.lock)
proc.go#L3732: if netpollinited() && (netpollAnyWaiters() || pollUntil != 0) && sched.lastpoll.Swap(0) != 0 {
proc.go#L3733: sched.pollUntil.Store(pollUntil)
proc.go#L3757: sched.pollUntil.Store(0)
proc.go#L3758: sched.lastpoll.Store(now)
proc.go#L3765: lock(&sched.lock)
proc.go#L3767: unlock(&sched.lock)
proc.go#L3791: pollerPollUntil := sched.pollUntil.Load()
proc.go#L3805: if !sched.runq.empty() {
proc.go#L3812: if netpollinited() && netpollAnyWaiters() && sched.lastpoll.Load() != 0 {
proc.go#L3838: if sched.gcwaiting.Load() {
proc.go#L3905: lock(&sched.lock)
proc.go#L3909: unlock(&sched.lock)
proc.go#L3912: unlock(&sched.lock)
proc.go#L3972: lock(&sched.lock)
proc.go#L3975: unlock(&sched.lock)
proc.go#L3982: unlock(&sched.lock)
proc.go#L3989: unlock(&sched.lock)
proc.go#L3994: unlock(&sched.lock)
proc.go#L4003: if sched.lastpoll.Load() == 0 {
proc.go#L4008: pollerPollUntil := sched.pollUntil.Load()
proc.go#L4027: nmspinning := sched.nmspinning.Add(-1)
proc.go#L4072: lock(&sched.lock)
proc.go#L4076: unlock(&sched.lock)
proc.go#L4082: unlock(&sched.lock)
proc.go#L4090: lock(&sched.lock)
proc.go#L4092: unlock(&sched.lock)
proc.go#L4098: npidle := sched.npidle.Load()
proc.go#L4105: lock(&sched.lock)
proc.go#L4107: unlock(&sched.lock)
proc.go#L4112: lock(&sched.lock)
proc.go#L4114: unlock(&sched.lock)
proc.go#L4202: if sched.disable.user && !schedEnabled(gp) {
proc.go#L4206: lock(&sched.lock)
proc.go#L4210: unlock(&sched.lock)
proc.go#L4212: sched.disable.runnable.pushBack(gp)
proc.go#L4213: unlock(&sched.lock)
proc.go#L4331: if preempted && sched.gcwaiting.Load() {
proc.go#L4336: lock(&sched.lock)
proc.go#L4338: unlock(&sched.lock)
proc.go#L4510: sched.ngsys.Add(-1)
proc.go#L4682: if sched.gcwaiting.Load() {
proc.go#L4710: if sched.sysmonwait.Load() {
proc.go#L4747: lock(&sched.lock)
proc.go#L4748: if sched.sysmonwait.Load() {
proc.go#L4749: sched.sysmonwait.Store(false)
proc.go#L4750: notewakeup(&sched.sysmonnote)
proc.go#L4752: unlock(&sched.lock)
proc.go#L4758: lock(&sched.lock)
proc.go#L4759: if sched.stopwait > 0 {
proc.go#L4772: if sched.stopwait--; sched.stopwait == 0 {
proc.go#L4773: notewakeup(&sched.stopnote)
proc.go#L4776: unlock(&sched.lock)
proc.go#L4892: if sched.stopwait == freezeStopWait {
proc.go#L5004: if sched.disable.user && !schedEnabled(gp) {
proc.go#L5045: if sched.pidle != 0 {
proc.go#L5046: lock(&sched.lock)
proc.go#L5048: if pp != nil && sched.sysmonwait.Load() {
proc.go#L5049: sched.sysmonwait.Store(false)
proc.go#L5050: notewakeup(&sched.sysmonnote)
proc.go#L5052: unlock(&sched.lock)
proc.go#L5082: lock(&sched.lock)
proc.go#L5097: } else if sched.sysmonwait.Load() {
proc.go#L5098: sched.sysmonwait.Store(false)
proc.go#L5099: notewakeup(&sched.sysmonnote)
proc.go#L5101: unlock(&sched.lock)
proc.go#L5134: sched.nGsyscallNoP.Add(1)
proc.go#L5149: sched.nGsyscallNoP.Add(-1)
proc.go#L5359: sched.ngsys.Add(1)
proc.go#L5394: pp.goidcache = sched.goidgen.Add(_GoidCacheBatch)
proc.go#L5498: lock(&sched.gFree.lock)
proc.go#L5499: sched.gFree.noStack.pushAll(noStackQ)
proc.go#L5500: sched.gFree.stack.pushAll(stackQ)
proc.go#L5501: unlock(&sched.gFree.lock)
proc.go#L5509: if pp.gFree.empty() && (!sched.gFree.stack.empty() || !sched.gFree.noStack.empty()) {
proc.go#L5510: lock(&sched.gFree.lock)
proc.go#L5514: gp := sched.gFree.stack.pop()
proc.go#L5516: gp = sched.gFree.noStack.pop()
proc.go#L5523: unlock(&sched.gFree.lock)
proc.go#L5582: lock(&sched.gFree.lock)
proc.go#L5583: sched.gFree.noStack.pushAll(noStackQ)
proc.go#L5584: sched.gFree.stack.pushAll(stackQ)
proc.go#L5585: unlock(&sched.gFree.lock)
proc.go#L5700: n := int32(atomic.Loaduintptr(&allglen)) - sched.gFree.stack.size - sched.gFree.noStack.size
proc.go#L5702: n -= sched.ngsys.Load()
proc.go#L5725: return int32(sched.mnext - sched.nmfreed)
proc.go#L5893: lock(&sched.lock)
proc.go#L5894: sched.profilehz = hz
proc.go#L5895: unlock(&sched.lock)
proc.go#L5948: assertLockHeld(&sched.lock)
proc.go#L6016: sched.goroutinesCreated.Add(int64(pp.goroutinesCreated))
proc.go#L6031: assertLockHeld(&sched.lock)
proc.go#L6046: if sched.procresizetime != 0 {
proc.go#L6047: sched.totaltime += int64(old) * (now - sched.procresizetime)
proc.go#L6049: sched.procresizetime = now
proc.go#L6356: lock(&sched.lock)
proc.go#L6357: sched.nmidlelocked += v
proc.go#L6361: unlock(&sched.lock)
proc.go#L6368: assertLockHeld(&sched.lock)
proc.go#L6396: run := mcount() - sched.nmidle - sched.nmidlelocked - sched.nmsys
proc.go#L6401: print("runtime: checkdead: nmidle=", sched.nmidle, " nmidlelocked=", sched.nmidlelocked, " mcount=", mcount(), " nmsys=", sched.nmsys, "\n")
proc.go#L6402: unlock(&sched.lock)
proc.go#L6420: unlock(&sched.lock)
proc.go#L6425: unlock(&sched.lock) // unlock so that GODEBUG=scheddetail=1 doesn't hang
proc.go#L6439: unlock(&sched.lock)
proc.go#L6446: unlock(&sched.lock)
proc.go#L6452: sched.nmspinning.Add(1)
proc.go#L6467: unlock(&sched.lock) // unlock so that GODEBUG=scheddetail=1 doesn't hang
proc.go#L6487: lock(&sched.lock)
proc.go#L6488: sched.nmsys++
proc.go#L6490: unlock(&sched.lock)
proc.go#L6524: if debug.schedtrace <= 0 && (sched.gcwaiting.Load() || sched.npidle.Load() == gomaxprocs) {
proc.go#L6525: lock(&sched.lock)
proc.go#L6526: if sched.gcwaiting.Load() || sched.npidle.Load() == gomaxprocs {
proc.go#L6530: sched.sysmonwait.Store(true)
proc.go#L6531: unlock(&sched.lock)
proc.go#L6542: syscallWake = notetsleep(&sched.sysmonnote, sleep)
proc.go#L6546: lock(&sched.lock)
proc.go#L6547: sched.sysmonwait.Store(false)
proc.go#L6548: noteclear(&sched.sysmonnote)
proc.go#L6555: unlock(&sched.lock)
proc.go#L6558: lock(&sched.sysmonlock)
proc.go#L6568: lastpoll := sched.lastpoll.Load()
proc.go#L6570: sched.lastpoll.CompareAndSwap(lastpoll, now)
proc.go#L6615: unlock(&sched.sysmonlock)
proc.go#L6703: if runqempty(pp) && sched.nmspinning.Load()+sched.npidle.Load() > 0 && pd.syscallwhen+10*1000*1000 > now {
proc.go#L6801: assertLockHeld(&sched.lock)
proc.go#L6805: sched.stopwait--
proc.go#L6905: lock(&sched.lock)
proc.go#L6906: print("SCHED ", (now-starttime)/1e6, "ms: gomaxprocs=", gomaxprocs, " idleprocs=", sched.npidle.Load(), " threads=", mcount(), " spinningthreads=", sched.nmspinning.Load(), " needspinning=", sched.needspinning.Load(), " idlethreads=", sched.nmidle, " runqueue=", sched.runq.size)
proc.go#L6908: print(" gcwaiting=", sched.gcwaiting.Load(), " nmidlelocked=", sched.nmidlelocked, " stopwait=", sched.stopwait, " sysmonwait=", sched.sysmonwait.Load(), "\n")
proc.go#L6950: unlock(&sched.lock)
proc.go#L6992: unlock(&sched.lock)
proc.go#L7101: lock(&sched.lock)
proc.go#L7102: custom := sched.customGOMAXPROCS
proc.go#L7103: unlock(&sched.lock)
proc.go#L7114: lock(&sched.lock)
proc.go#L7115: sched.customGOMAXPROCS = false
proc.go#L7116: unlock(&sched.lock)
proc.go#L7127: lock(&sched.lock)
proc.go#L7128: custom := sched.customGOMAXPROCS
proc.go#L7130: unlock(&sched.lock)
proc.go#L7164: lock(&sched.lock)
proc.go#L7165: if sched.disable.user == !enable {
proc.go#L7166: unlock(&sched.lock)
proc.go#L7169: sched.disable.user = !enable
proc.go#L7171: n := sched.disable.runnable.size
proc.go#L7172: globrunqputbatch(&sched.disable.runnable)
proc.go#L7173: unlock(&sched.lock)
proc.go#L7174: for ; n != 0 && sched.npidle.Load() != 0; n-- {
proc.go#L7178: unlock(&sched.lock)
proc.go#L7187: assertLockHeld(&sched.lock)
proc.go#L7189: if sched.disable.user {
proc.go#L7201: assertLockHeld(&sched.lock)
proc.go#L7203: sched.midle.push(unsafe.Pointer(mp))
proc.go#L7204: sched.nmidle++
proc.go#L7214: assertLockHeld(&sched.lock)
proc.go#L7216: mp := (*m)(sched.midle.pop())
proc.go#L7218: sched.nmidle--
proc.go#L7231: assertLockHeld(&sched.lock)
proc.go#L7238: sched.midle.remove(unsafe.Pointer(mp))
proc.go#L7239: sched.nmidle--
proc.go#L7250: assertLockHeld(&sched.lock)
proc.go#L7252: sched.runq.pushBack(gp)
proc.go#L7261: assertLockHeld(&sched.lock)
proc.go#L7263: sched.runq.push(gp)
proc.go#L7273: assertLockHeld(&sched.lock)
proc.go#L7275: sched.runq.pushBackAll(*batch)
proc.go#L7282: assertLockHeld(&sched.lock)
proc.go#L7284: if sched.runq.size == 0 {
proc.go#L7288: return sched.runq.pop()
proc.go#L7294: assertLockHeld(&sched.lock)
proc.go#L7296: if sched.runq.size == 0 {
proc.go#L7300: n = min(n, sched.runq.size, sched.runq.size/gomaxprocs+1)
proc.go#L7302: gp = sched.runq.pop()
proc.go#L7306: gp1 := sched.runq.pop()
proc.go#L7374: assertLockHeld(&sched.lock)
proc.go#L7386: pp.link = sched.pidle
proc.go#L7387: sched.pidle.set(pp)
proc.go#L7388: sched.npidle.Add(1)
proc.go#L7403: assertLockHeld(&sched.lock)
proc.go#L7405: pp := sched.pidle.ptr()
proc.go#L7413: sched.pidle = pp.link
proc.go#L7414: sched.npidle.Add(-1)
proc.go#L7431: assertLockHeld(&sched.lock)
proc.go#L7438: sched.needspinning.Store(1)
proc.go#L7556: lock(&sched.lock)
proc.go#L7558: unlock(&sched.lock)
proc.go#L7861: lock(&sched.lock)
proc.go#L7862: out = int(sched.maxmcount)
proc.go#L7864: sched.maxmcount = 0x7fffffff
proc.go#L7866: sched.maxmcount = int32(in)
proc.go#L7869: unlock(&sched.lock)
proc.go#L7944: if i >= active_spin || numCPUStartup <= 1 || gomaxprocs <= sched.npidle.Load()+sched.nmspinning.Load()+1 {
runtime2.go#L1407: sched schedt
trace.go#L372: lock(&sched.sysmonlock)
trace.go#L445: unlock(&sched.sysmonlock)
trace.go#L657: lock(&sched.lock)
trace.go#L662: for mp := sched.freem; mp != nil; mp = mp.freelink {
trace.go#L666: unlock(&sched.lock)
traceruntime.go#L686: assertLockHeld(&sched.lock)
 |
The pages are generated with Golds v0.8.4. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |